
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <!-- import Vue before Element 引入 VUE.js-->
    <script src="./js/vue.min.js"></script>
    <!--    引入axios 的CSS-->
    <script src="./js/axios.min.js"></script>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="./elementui/unpkg.com_element-ui@2.15.14_lib_theme-chalk_index.css">
    <!-- 引入组件库 -->
    <script src="./elementui/unpkg.com_element-ui@2.15.14_lib_index.js"></script>
    <style>
        header a {
            text-decoration: none;
            color: #6c6c6c;
        }
        .el-table .el-table__cell {
            padding: 0; /*去掉表格中每一行自带的内边距*/
        }

        .el-table .cell {
            white-space: nowrap; /*让内容在一行中显示*/
            /* text-overflow: ellipsis;*//*文本内容超出范围时用省略号表示*/
        }

        .p_img:hover {
            position: relative;
            top: 5px;
            /*设置元素阴影:x偏移值 y偏移值 浓度 范围 颜色*/
            box-shadow: 0 0 10px 5px #333;
        }
        .el-main a{
            color: black;
            text-decoration: none;
        }
        .el-main a:hover{
            color: #666;
        }
    </style>
</head>
<body>

<style>
    .breadcrumb-wrapper {
        position: fixed; /* 设置为固定定位 */
        margin-top: 0px;
        margin-bottom: 5px;
    }

    .layout-header {
        line-height: 60px;
        background: #1684b0;
        color: #fff;
    }
    .layout-body {
        position: absolute;
        top: 60px;
        bottom: 0;
        left: 0;
        right: 0;
    }
    .layout-aside {
        background: #222c32;
    }
    .layout-aside i {
        color: #fff !important;
    }
    .el-menu-item.is-active {
        background: #2d3c4d !important;
    }
    /* 为 el-card 组件的自定义类名设置上边距 */
    .custom-card {
        margin-top: 30px;
    }
</style>
<div id="app">
    <el-breadcrumb separator="/">
        <el-breadcrumb-item><a href="/index.html">任务管理</a></el-breadcrumb-item>
        <el-breadcrumb-item><a href="/addNew.html">新建任务</a></el-breadcrumb-item>
        <el-breadcrumb-item><a href="/databaseConfig.html">数据库配置</a></el-breadcrumb-item>
        <el-breadcrumb-item><a href="/FTPConfig.html">FTP配置</a></el-breadcrumb-item>
        <el-breadcrumb-item><a href="/addNew.html">数据库引用</a></el-breadcrumb-item>
        <el-breadcrumb-item>日志跟踪</el-breadcrumb-item>
        <el-breadcrumb-item>消息提醒</el-breadcrumb-item>
    </el-breadcrumb>
    <el-divider>新建任务</el-divider>
    <el-card>
        <template>
            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="200px" class="demo-ruleForm">

                <el-row :gutter="20">
                    <el-col :span="12">
                        <div class="grid-content bg-purple">
                            <el-form-item label="Ftp路径" prop="ftpPath" label-width="200px">
                                <el-input v-model="ruleForm.ftpPath" style="width: 400px"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="12">
                        <div class="grid-content bg-purple">
                            <el-form-item label="FtpIP地址" prop="ftpIp" label-width="200px">
                                <el-input v-model="ruleForm.ftpIp" style="width: 400px"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                </el-row>

                <el-row :gutter="20">
                    <el-col :span="12">
                        <div class="grid-content bg-purple">
                            <el-form-item label="FTP用户名" prop="ftpUserName" label-width="200px">
                                <el-input v-model="ruleForm.ftpUserName" style="width: 400px"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                    <el-col :span="12">
                        <div class="grid-content bg-purple">
                            <el-form-item label="FTP密码" prop="ftpPassword" label-width="200px">
                                <el-input v-model="ruleForm.ftpPassword" type="password" style="width: 400px"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                </el-row>

                <el-row :gutter="20">
                    <el-col :span="12">
                        <div class="grid-content bg-purple">
                            <el-form-item label="FTP端口" prop="ftpPort" label-width="200px">
                                <el-input v-model="ruleForm.ftpPort" style="width: 400px"></el-input>
                            </el-form-item>
                        </div>
                        <div class="grid-content bg-purple">
                            <el-form-item label="FTP配置名称" prop="name" label-width="200px">
                                <el-input v-model="ruleForm.name" style="width: 400px"></el-input>
                            </el-form-item>
                        </div>
                    </el-col>
                </el-row>

                <el-form-item>
                    <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
                    <el-button type="primary" @click="submitForm('ruleForm')">测试连接</el-button>
                    <el-button @click="resetForm('ruleForm')">重置</el-button>
                </el-form-item>
            </el-form>
        </template>
    </el-card>
    <el-divider>已有配置</el-divider>
    <el-card>
        <template>
            <el-table
                    :data="tableData"
                    border
                    style="width: 100%">
                <el-table-column prop="fid" label="ID" align="center"></el-table-column>
                <el-table-column prop="name" label="配置名" align="center"></el-table-column>
                <el-table-column prop="ftpPath" label="Ftp路径" align="center"></el-table-column>
                <el-table-column prop="ftpIp" label="FtpIP地址" align="center"></el-table-column>
                <el-table-column prop="ftpUserName" label="FTP用户名" align="center"></el-table-column>
                <el-table-column prop="ftpPassword" label="FTP密码" align="center"></el-table-column>
                <el-table-column prop="ftpPort" label="FTP端口" align="center"></el-table-column>
                <el-table-column width="300" label="操作" align="center">
                    <template slot-scope="scope">
                        <el-button size="small" round type="danger" @click="remove(scope.row.fid)">删除</el-button>
                    </template>
                </el-table-column>
            </el-table>
        </template>
    </el-card>
</div>

</body>

<style>
    .el-table .warning-row {
        background: oldlace;
    }

    .el-table .success-row {
        background: #f0f9eb;
    }
    .deleted-row {
        background-color: #ffe6e6; /* 设置删除状态的行背景色 */
    }
</style>

<script>
    let v = new Vue({
        el: '#app',
        data: function () {
            return {
                ruleForm: {
                    ftpPath: '',        // Ftp路径
                    name: '',        // Ftp路径
                    ftpIp: '',          // FtpIP地址
                    ftpUserName: '',    // FTP用户名
                    ftpPassword: '',    // FTP密码
                    ftpPort: '',        // FTP端口
                },
                tableData: [],
                rules: {
                    name: [
                        { required: true, message: '请输入Ftp主机名', trigger: 'blur' },
                    ],
                    ftpPath: [
                        { required: true, message: '请输入Ftp路径', trigger: 'blur' },
                    ],
                    ftpIp: [
                        { required: true, message: '请输入FtpIP地址', trigger: 'blur' },
                    ],
                    ftpUserName: [
                        { required: true, message: '请输入FTP用户名', trigger: 'blur' },
                    ],
                    ftpPassword: [
                        { required: true, message: '请输入FTP密码', trigger: 'blur' },
                    ],
                    ftpPort: [
                        { required: true, message: '请输入FTP端口', trigger: 'blur' },
                    ]
                }
            }
        },
        methods: {
            submitForm(formName) {
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        const requestData = {
                            "fid": this.ruleForm.fid,
                            "name": this.ruleForm.name,
                            "ftpIp": this.ruleForm.ftpIp,
                            "ftpPassword": this.ruleForm.ftpPassword,
                            "ftpPath": this.ruleForm.ftpPath,
                            "ftpPort": this.ruleForm.ftpPort,
                            "ftpUserName": this.ruleForm.ftpUserName
                        };
                        //发送 POST 请求
                        axios.post('/ftp/create', requestData).then(function (response) {
                            if (response.data.code=200000){
                                v.$message.success(response.data.msg);
                                v.listTable();
                            }else {
                                v.$message.error(response.data.msg);
                            }
                        })
                    }
                });
            },
            resetForm(formName) {
                this.$refs[formName].resetFields();
            },
            remove(id){
                let data = new FormData();
                data.append('id', id)
                axios.post('/ftp/remove', data)
                    .then(function (response) {
                        if (response.data.code === 200000) {
                            v.$message.success(response.data.msg);
                            v.listTable();
                        } else {
                            v.$message.error(response.data.msg);
                        }
                    })
            },
            listTable(){
                const apiUrl = '/ftp/list'; // 接口地址
                const vm = this; // 保存 Vue 实例的引用
                axios.get(apiUrl)
                    .then(function (response) {
                        if (response.data.code == 200000) {
                            vm.tableData = response.data.result;
                            // console.log(vm.tableData);
                        } else {
                            vm.$message.error(response.data.msg);
                        }
                    });
            }
        },
        //页面周期函数
        created: function () {
            const apiUrl = '/ftp/list'; // 接口地址
            const vm = this; // 保存 Vue 实例的引用
            axios.get(apiUrl)
                .then(function (response) {
                    if (response.data.code == 200000) {
                        vm.tableData = response.data.result;
                        // console.log(vm.tableData);
                    } else {
                        vm.$message.error(response.data.msg);
                    }
                });
        }
    })
</script>
</html>